package com.io.ostream;

import org.junit.Test;

import java.io.Externalizable;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.Serializable;

public class Example01 {
    public static void main(String[] args) {
        System.out.println("FileOutputStream 学习用法");
    }

    @Test
    public void writeFile() {
        /**
         * 写入文件
         * 1.创建 FileOutputStream 对象(如果文件不存在，会创建文件) -- 追加写/覆盖写
         * 2.使用 write（）方法
         * 3.文件资源流关闭 close()
         */
        String path = "E:\\test\\";
        // 全局使用
        FileOutputStream fileOutputStream = null;
        try {
            // 1.构建 FileOutputStream ，覆盖写
            // 2. 追加写 FileOutputStream(path, true) true，将字节写入到文件的末尾而
            //fileOutputStream = new FileOutputStream(path + "a.txt");
            fileOutputStream = new FileOutputStream(path + "a.txt",true);
            // 写入方式有三种
            // 1.单个字节写入
            fileOutputStream.write('H');
            // 2.写入多个字节
            String str = "hello,word中国";
            // String 转 byte[] 数组 使用 getBytes()方法
            fileOutputStream.write(str.getBytes());
            // 3.写入指定位置的字节
            fileOutputStream.write(str.getBytes(),0,3);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 关闭资源流
            try {
                fileOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
